package com.umariana.ClinicaVeterinaria.Persistencia;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

public class RazasDao extends Database
{

	
	
	
	/**
	 * constructor de la clase RzasDao
	 */
	public RazasDao() {
		super();
		
	}

	/**
	 * retorna el tipo de especies que existen en la veterinaria
	 * @return lista de las especies en la veterinaria
	 * @throws InstantiationException si existen algun problema al instaciar el driver
	 * @throws IllegalAccessException si existen algun problema al instaciar el driver
	 * @throws ClassNotFoundException si existen algun problema al instaciar el driver
	 * @throws SQLException si existe algun problema con la consulta SQL
	 */
	public ArrayList<String> darEspecies() throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException
	{
		ArrayList<String> listaEspecies = new ArrayList<String>();
		conectar();
		Connection conexion = getConexion();
		PreparedStatement comando = conexion.prepareStatement("call darEspecies");
		ResultSet rs = comando.executeQuery();
		while(rs.next())
		{
			listaEspecies.add(rs.getString(2));
		}
		rs.close();
		comando.close();
		desconectar();
		return listaEspecies;
	}
	
	/**
	 * retorn las razas segun la especie
	 * @param pEspecie especie del que se quiere sacar las razas
	 * @return lista de razas dada la especie
	 * @throws InstantiationException si existen algun problema al instaciar el driver
	 * @throws IllegalAccessException si existen algun problema al instaciar el driver
	 * @throws ClassNotFoundException si existen algun problema al instaciar el driver
	 * @throws SQLException si existe algun problema con la consulta SQL
	 */
	public ArrayList<String> darRazas(String pEspecie) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException
	{
		ArrayList<String> listaRazas = new ArrayList<String>();
		conectar();
		Connection conexion = getConexion();
		PreparedStatement comando = conexion.prepareStatement("call darRazas(?)");
		comando.setString(1, pEspecie);
		ResultSet rs = comando.executeQuery();
		while(rs.next())
		{
			listaRazas.add(rs.getString(2));
		}
		rs.close();
		comando.close();
		desconectar();
		return listaRazas;
	}
	
	/**
	 * consulta lso ids de raza y especie
	 * @param pRaza nombre de la raza
	 * @param pEspecie nombre de la especie
	 * @return la union en una cadena separasa con #
	 * @throws InstantiationException
	 * @throws IllegalAccessException
	 * @throws ClassNotFoundException
	 * @throws SQLException
	 */
	public String darIdesEspecieRaza(String pRaza , String pEspecie) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException
	{
		
		String respuesta = "";
		conectar();
		Connection conexion = getConexion();
		PreparedStatement comando = conexion.prepareStatement("call darIdsEspecieRaza(?,?)");
		comando.setString(1,pRaza);
		comando.setString(2, pEspecie);
		ResultSet rs = comando.executeQuery();
		while(rs.next())
		{
		 respuesta = rs.getInt(1)+"#"+rs.getInt(2); 
		}
		rs.close();
		comando.close();
		desconectar();
		
		return respuesta;
	}
	
	
}
